Reasoning about Lock Placements
نویسندگان
چکیده
A lock placement describes, for each heap location, which lock guards the location, and under what circumstances. We formalize methods for reasoning about lock placements, making precise the interactions between the program, the heap structure, and the lock placement.
منابع مشابه
Lock Inference for Systems Software
We have developed task scheduler logic (TSL) to automate reasoning about scheduling and concurrency in systems software. TSL can detect race conditions and other errors as well as supporting lock inference: the derivation of an appropriate lock implementation for each critical section in a system. Lock inference solves a number of problems in creating flexible, reliable, and efficient systems s...
متن کاملProceedings of the Second AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software
We have developed task scheduler logic (TSL) to automate reasoning about scheduling and concurrency in systems software. TSL can detect race conditions and other errors as well as supporting lock inference: the derivation of an appropriate lock implementation for each critical section in a system. Lock inference solves a number of problems in creating flexible, reliable, and efficient systems s...
متن کاملChildren's cognitive representation of the mathematical number line.
Learning of the mathematical number line has been hypothesized to be dependent on an inherent sense of approximate quantity. Children's number line placements are predicted to conform to the underlying properties of this system; specifically, placements are exaggerated for small numerals and compressed for larger ones. Alternative hypotheses are based on proportional reasoning; specifically, nu...
متن کاملTemporal Reasoning for Procedural Programs
While temporal verification of programs is a topic with a long history, its traditional basis—semantics based on word languages—is ill-suited for modular reasoning about procedural programs. We address this issue by defining the semantics of procedural (potentially recursive) programs using languages of nested words and developing a framework for temporal reasoning around it. This generalizatio...
متن کاملConcurrent Abstract Predicates – long version – ( Draft , submitted for publication )
Abstraction is key to understanding and reasoning about large computer systems. Abstraction is easy to achieve if the relevant data structures are disjoint, but rather difficult when they are partially shared, as is the case for concurrent modules. We present a program logic for reasoning abstractly about data structures that gives us a fiction of disjointness and permits compositional reasonin...
متن کامل